/* ******       ************************        **********************************        ************************       ***** */
/*                                                                                                                             */
/* ******       Informations :                                                                                           ***** */
/*              Code crée par Julien Couet pour le cour de maitrise MTI880 de l'ETS (http://www.etsmtl.ca/) encadré par        */
/*              le professeur Luc Duong   http://profs.etsmtl.ca/lduong/cours/mti880/                                          */
/*                                                                                                                             */
/* ******       Licence, Droits et Garantie :                                                                            ***** */
/*              Ce code est libre de tous droits dans la limite de ceux de OpenCV : http://opencv.willowgarage.com/wiki/       */
/*              qui est sous licence 'BSD' :  http://en.wikipedia.org/wiki/BSD_licenses                                        */
/*                                                                                                                             */
/* ******       Contacts :                                                                                               ***** */
/*              couet.julien@gmail.com                                                                                         */
/*                                                                                                                             */
/* ******       ************************        **********************************        ************************       ***** */


#ifndef IMAGEWIDGET_H
#define IMAGEWIDGET_H


#include <QtGui>
#include <QList>
#include <QSize>
#include <QPoint>
#include <QPixmap>
#include <QWidget>
#include <QImage>
#include <QMouseEvent>
#include <QPainter>

#include <iostream>
using namespace std;


            /** *****       ************************        **********************************        ************************       **** **/
            /** *****                                                                                                                **** **/
            /** *****                                                 Classe imageWidget                                             **** **/
            /** *****                                                                                                                **** **/
            /** *****                    Permet d'afficher une image dans un widget Qt via la classe QPainter                        **** **/
            /** *****                                                                                                                **** **/
            /** *****                                   1. Constructeur & Destructeur                                                **** **/
            /** *****                                   2. Affichage de l'image                                                      **** **/
            /** *****                                                                                                                **** **/
            /** *****       ************************        **********************************        ************************       **** **/

namespace views {
    class ImageWidget : public QWidget {
        Q_OBJECT

        public :
            /** 1.1     Constructeur & Destructeur */
                ImageWidget(QWidget *parent);
                ImageWidget(QWidget *parent, QSize size);
                ~ImageWidget();

                /// 2.1     Insertion de la nouvelle image à afficher
                void setImage(QImage);


        protected :
                /// 2.2     Affichage de l'image via QPainter. Appeler à chaque update();
                void paintEvent(QPaintEvent *event);

        private :
            // Image affiché dans le widget
            QImage  *_qtImage;
    };
}
#endif //IMAGEWIDGET_H
